// 加载矢量边界
var FujinShp = FujinCountyShp; // 替换为实际的路径

// 绘制矢量边界
function addMyLayer() {
  var empty = ee.Image().toByte();
  var outline = empty.paint({
    featureCollection:FujinShp,
    color: 0,
    width: 1
  });
  Map.addLayer(outline, {palette: "ff0000"}, "Outline");
}

addMyLayer();

// Sentinel-2 云掩膜函数
function maskS2clouds(image) {
  var qa = image.select('QA60');
  var cloudBitMask = 1 << 10; // 云
  var cirrusBitMask = 1 << 11; // 卷云
  var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
               .and(qa.bitwiseAnd(cirrusBitMask).eq(0));
  return image.updateMask(mask).divide(10000);
}

// Sentinel-2 NDVI 计算函数
function calculateNDVI(image) {
  return image.addBands(
    image.normalizedDifference(['B8', 'B4']).rename('NDVI') // NDVI = (NIR - RED) / (NIR + RED)
  );
}

// 加载 Sentinel-2 数据
var s2Collection = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
                      .filterDate('2022-01-01', '2022-01-31') // 限定时间范围
                      .filterBounds(FujinShp) // 限定空间范围
                      .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)) // 云覆盖率小于 20%
                      .map(maskS2clouds) // 应用云掩膜
                      .map(calculateNDVI); // 计算 NDVI

// 计算 NDVI 平均值
var ndviMean = s2Collection.select('NDVI').mean().clip(FujinShp); // 在边界内裁剪

// 显示 NDVI 图像
Map.centerObject(FujinShp, 9); // 地图中心对准矢量边界
Map.addLayer(ndviMean, {min: -1, max: 1, palette: ['blue', 'white', 'green']}, 'NDVI Mean');

// 将 NDVI 平均值导出到 Google Drive
Export.image.toDrive({
  image: ndviMean,
  description: 'Fujin_NDVI_Mean_Jan_2022',
  scale: 10, // 空间分辨率
  region: FujinShp.geometry(), // 导出的范围
  fileFormat: 'GeoTIFF',
  folder: 'GEE_Exports', // 导出到 Google Drive 的文件夹
  maxPixels: 1e9
});

// // 将 NDVI 转为下载 URL
// var downloadUrl = ndviMean.getDownloadURL({
//   region: FujinShp.geometry().bounds().getInfo(),
//   scale: 10,
//   crs: 'EPSG:4326',
//   fileFormat: 'GeoTIFF'
// });

// // 打印下载链接
// print('Download URL:', downloadUrl);
